package com.baidu.util;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.apache.http.HttpResponse;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * @author 田甜
 * @version 1.0
 * @description: TODO
 * @date 2021/12/15 0015 9:58
 */
public class BankCardent {

    //public static void main(String[] args) throws IOException {
    //    String url = "https://bankcard3c.shumaidata.com/bankcard3c";
    //    String appCode = "5458f6797b984b4f9595b34f796b0349";
    //    Map<String, String> params = new HashMap<>();
    //    //姓名：刘冬奇
    //    //身份证：360428198201011432
    //    //银行卡号：6217856100044522370
    //    params.put("idcard", "360428198201011432");
    //    params.put("name", "刘冬奇");
    //    params.put("bankcard", "6217856100044522370");
    //    String result = get(appCode, url, params);
    //    System.out.println(result);
    //}

    /**
     * 用到的HTTP工具包：okhttp 3.13.1
     * <dependency>
     * <groupId>com.squareup.okhttp3</groupId>
     * <artifactId>okhttp</artifactId>
     * <version>3.13.1</version>
     * </dependency>
     */
    public static String get(String appCode, String url, Map<String, String> params) throws IOException {
        url = url + buildRequestUrl(params);
        OkHttpClient client = new OkHttpClient.Builder().build();
        Request request = new Request.Builder().url(url).addHeader("Authorization", "APPCODE " + appCode).build();
        Response response = client.newCall(request).execute();
        System.out.println("返回状态码" + response.code() + ",message:" + response.message());
        String result = response.body().string();
        return result;
    }

    public static String buildRequestUrl(Map<String, String> params) {
        StringBuilder url = new StringBuilder("?");
        Iterator<String> it = params.keySet().iterator();
        while (it.hasNext()) {
            String key = it.next();
            url.append(key).append("=").append(params.get(key)).append("&");
        }
        return url.toString().substring(0, url.length() - 1);
    }



    //public static void main(String[] args) {
    //    String host = "https://api11.aliyun.venuscn.com";
    //    String path = "/cert/bank-card/4";
    //    String method = "Post";
    //    String appcode = "5458f6797b984b4f9595b34f796b0349";
    //    Map<String, String> headers = new HashMap<String, String>();
    //    //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
    //    headers.put("Authorization", "APPCODE " + appcode);
    //    Map<String, String> querys = new HashMap<String, String>();
    //    querys.put("bank", "6217856100044522370");
    //    querys.put("mobile", "15933548796");
    //    querys.put("name", "刘冬奇");
    //    querys.put("number", "360428198201011432");
    //    querys.put("type", "0");
    //    //    //银行卡
    //    //    bodys.put("bankcard", "6217856100044522370");
    //    //    //证件号
    //    //    bodys.put("idCard", "360428198201011432");
    //    //    //证件类型可以不写
    //    //    //bodys.put("idCardType", "01");
    //    //    //预留手机号
    //    //    bodys.put("mobile", "15230471769");
    //    //    //姓名
    //    //    bodys.put("realName", "刘冬奇");
    //
    //
    //    try {
    //        /**
    //         * 重要提示如下:
    //         * HttpUtils请从
    //         * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
    //         * 下载
    //         *
    //         * 相应的依赖请参照
    //         * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
    //         */
    //        HttpResponse response = HttpUtils.doGet(host, path, method, headers, querys);
    //        System.out.println(response.toString());
    //        //获取response的body
    //        //System.out.println(EntityUtils.toString(response.getEntity()));
    //    } catch (Exception e) {
    //        e.printStackTrace();
    //    }
    //}
    //
    //    //public static void main(String[] args) {
    //    //    String host = "http://cardmobile.market.alicloudapi.com";
    //    //    String path = "/s/api/ocr/cloudCode/bankNameIdCardMobile";
    //    //    String method = "POST";
    //    //    String appcode = "5458f6797b984b4f9595b34f796b0349";
    //    //    Map<String, String> headers = new HashMap<String, String>();
    //    //    //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
    //    //    headers.put("Authorization", "APPCODE " + appcode);
    //    //    //根据API的要求，定义相对应的Content-Type
    //    //    headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    //    //    Map<String, String> querys = new HashMap<String, String>();
    //    //    Map<String, String> bodys = new HashMap<String, String>();
    //    //    //银行卡
    //    //    bodys.put("bankcard", "6217856100044522370");
    //    //    //证件号
    //    //    bodys.put("idCard", "360428198201011432");
    //    //    //证件类型可以不写
    //    //    //bodys.put("idCardType", "01");
    //    //    //预留手机号
    //    //    bodys.put("mobile", "15230471769");
    //    //    //姓名
    //    //    bodys.put("realName", "刘冬奇");
    //    //
    //    //
    //    //
    //    //    try {
    //    //        /**
    //    //         * 重要提示如下:
    //    //         * HttpUtils请从
    //    //         * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
    //    //         * 下载
    //    //         *
    //    //         * 相应的依赖请参照
    //    //         * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
    //    //         */
    //    //        HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);
    //    //        System.out.println(response.toString());
    //    //        //获取response的body
    //    //        //System.out.println(EntityUtils.toString(response.getEntity()));
    //    //    } catch (Exception e) {
    //    //        e.printStackTrace();
    //    //    }
    //    //}
}
